
// 图谱列表查询参数
export interface GraphListParams {
  page?: number;
  pageSize?: number;
  name?: string;
}

// 图谱信息
export interface GraphItem {
  id: string;
  name: string;
  graph_type: 'structured' | 'unstructured'; // 图谱类型：结构化数据（structured），非结构化数据（unstructured）
  graph_type_display: string;
  created_at: number;
  status: string;
}


export interface Relationship {
  name: string;
  nodeId: string;
  source: string;
  sourceID: string;
  sourceNodeCategory: string;
  target: string;
  targetID: string;
  targetNodeCategory: string;
}

export interface Node {
  nodeId: string;
  name: string;
  category: string;
}

// 图谱详情
export interface GraphDetail {
  id: string;
  name: string;
  node_number: number;
  relation: number;
  graph_type: 'structured' | 'unstructured'; // 图谱类型：结构化数据（structured），非结构化数据（unstructured）
  description: string;
  links: {
    nodes: any[];
    relationships: any[];
  };
}

// 创建图谱参数
export interface CreateGraphParams {
  name: string;
  graph_type: 'structured' | 'unstructured'; // 图谱类型：结构化数据（structured），非结构化数据（unstructured）
}

// 数据源连接信息
export interface DataBaseSource {
  db_type: string;
  host: string;
  port: string;
  username: string;
  password: string;
  db_name: string;
}

// 测试数据库连接参数
export interface TestDatabaseConnectionParams {
  graph_type: string; // 图谱类型：结构化数据（structured），非结构化数据（unstructured）
  data_source: DataBaseSource // 数据源连接信息
}

// 保存数据库配置信息请求参数
export interface SaveDatabaseConfigParams {
  db_type: string; // 数据源类型：mysql、postgresql、oracle、sqlite3
  host: string; // 数据源连接地址
  port: string; // 数据源端口号
  username: string; // 数据源用户名
  password: string; // 数据源密码
  db_name: string; // 数据源数据库名称
}

// 获取数据源表列表参数
export interface GetDataSourceTablesParams {
  page_size?: number; // 每页数据条数，默认10条
  page?: number; // 页码
}

// 数据源表信息
export interface DataSourceTableInfo {
  table_name: string;
  table_comment: string;
}

// 构建图谱参数
export interface BuildGraphParams {
  table_name?: string[]; // 需要构建的数据库表
  commit?: string[]; // 需要构建的数据库表名称，和 table_name字段值一一对应
}

// 构建图谱状态
export type BuildGraphStatus = 'pending' | 'building' | 'completed' | 'failed' | 'deleted'; // 等待中、构建中、已完成、失败、已删除

// 构建图谱进度
export interface BuildGraphProgress {
  status: BuildGraphStatus;
  build_total: number;
  already_build: number;
}
